<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../../vue.js"></script>
</head>

<body>
    <!-- 
        v-on:绑定事件 :
          -后跟Function | Inline Statement | Object
          -参数: 
             不加小括号调用时,事件函数的形参1是event事件对象
    
    
    -->
    <!-- 创建容器 -->
    <div id="app">
        <!-- 插值语法,数据保存在data或者直接保存在实例vm上 -->
        <h1>计数器{{count}}</h1>
        <!-- 事件中只需要处理简单的逻辑时,可以直接写在虚拟DOM上 -->
        <!-- <button v-on:click="count = count + 1">累加</button> -->
        <button v-on:click="count++">累加</button>

        <button v-on:click="add">累加</button>
    </div>
    <script>
        Vue.config.productionTip = false
        const vm = new Vue({
            // el:string | selector
            el: "#app",
            // data:Object|function
            data() {
                return {
                    count: 0,

                    /* 
                        直接书写在state中的函数的this指向window
                        但是Vue中的数据都存放在vm实例身上,所以这样写取不到data的值
                        
                    add() {
                        
                        console.log(this);
                        return 1111
                    }
                    */
                }
            },
            /* Vue提供了methods配置项 */
            methods: {
                add() {
                    /* this指向Vue实例 不能使用箭头函数,
                    箭头函数的this绑定了父级作用域的上下文*/
                    console.log(this, "this");
                    this.count++
                }
            }
        })


    </script>
</body>

</html>